home *** CD-ROM | disk | FTP | other *** search
- ;unsigned short number_pages();
-
- EXTRN _memory_model:byte
- EXTRN _error_code:byte
-
- _TEXT SEGMENT BYTE PUBLIC 'CODE'
- ASSUME CS:_TEXT
- PUBLIC _number_pages
- _number_pages proc near
- mov ah,35h ;function to get INT vector
- mov al,67h ;EMS vector
- int 21h ;
- or bx,bx ;test offset
- jnz L1 ;jump if nonzero
- mov ax,es ;test segment
- or ax,ax ;
- jnz L1 ;
- mov _error_code,1 ;flag error
- sub ax,ax ;
- ret ;
- L1: mov ah,42h ;function number
- int 67H ;EMS interrupt
- mov _error_code,0 ;0 = successful
- or ah,ah ;test if OK
- jz L2 ;jump if no error
- mov dx,0 ;return value if error
- inc _error_code ;1 = software malfunction
- cmp ah,80h ;test error type
- je L2 ;jump if error 1
- inc _error_code ;2 = hardware malfunction
- L2: mov ax,dx ;set return value
- cmp _memory_model,0 ;quit
- jle Quit ;
- db 0CBh ;RET far
- Quit: ret ;RET near
- _number_pages endp
- _TEXT ENDS
- END